1. Field of the Invention
This invention relates to the field of integrated circuits.
2. Background
Integrated circuits are sometimes used in environments and conditions where there may be a chance of soft errors. An error that does not damage the circuit but just changes the state of the circuit is called a “soft error”. A soft error due to excess charge (primarily induced by ionizing particles) is called a Single-Event Upset (SEU). Among the causes of soft errors are environments where there may be exposure to high energy particles.
With the continuous scaling down of VLSI circuits, the number of nodes in a system keeps increasing while the charge stored at a node keeps decreasing (due to lower capacitance and lower supply voltages). As a result, the probability that a soft error will affect a state of the system increases.
There have been prior art attempts to reduce the effects of soft errors. At the system level, Triple Modular Redundancy (TMR) is a general solution in case of a single error in circuits. It consists in triplicating computation cells and implementing a voter to determine the correct value. In other words, each circuit is implemented three times. The outputs are provided to a voter that provides as output the same output as any two or more of the inputs to the voter. With three circuits, an SEU on any one of them still results in two “correct” circuits. The voter will still output a correct value. One problem with TMR is that the system will fail if the voter fails regardless of whether cells fail or not. One prior art solution to this problem is to use three identical copies of the voter as well as three copies of the input elements. This scheme is also known as triplicated TMR.
Another problem is that if a common clock signal between the computation cells fails, then the TMR system cannot mask the error. A fault-tolerant TMR clock can be designed to address this problem. However, the majority voting scheme of TMR cannot readily be used to design SEU-tolerant circuits of certain types (e.g. quasi-delay-insensitive “QDI”) because the scheme may lead to a deadlock or an instability in the circuit. An SEU at Boolean variables used to implement communication protocols can cause a computation cell to generate an unexpected output or to skip an expected output. If an output is missed, a deadlock may happen in the voter that waits for the output.
Another system-level approach to protect circuits from SEUs is the use of error correction codes such as Hamming codes. However, Hamming codes are of no use for SEUs affecting the control variables (for instance the handshake variables) of a QDI circuit.